package jp.ac.waseda.cs.washi.game.api;

import java.util.ArrayList;

import jp.ac.waseda.cs.washi.gameaiarena.api.Point2;

/**
 * このインターフェースはキャラクタに関する情報を提供します。
 */
public interface CharaInfo {
	/**
	 * キャラクタが位置する座標を返します。
	 * 
	 * @return キャラクタが位置する座標
	 */
	Point2 getLocation();

	/**
	 * キャラクタのスコアを返します。
	 * 
	 * @return キャラクタのスコア
	 */
	int getScore();

	/**
	 * キャラクタが所有するボーナス図形（ミニパンプキンおよびキングパンプキン）情報のリストを返します。
	 * 
	 * @return キャラクタが所有するボーナス図形に関する情報のリスト
	 */
	ArrayList<PumpkinInfo> getPumpkins();

	/**
	 * キャラクタが所有するキングパンプキンに関する情報のリストを返します。
	 * 
	 * @return キャラクタが所有するキングパンプキンに関する情報のリスト
	 */
	ArrayList<PumpkinInfo> getKingPumpkins();

	/**
	 * キャラクタが所有するミニパンプキンに関する情報のリストを返します。
	 * 
	 * @return キャラクタが所有するミニパンプキンに関する情報のリスト
	 */
	ArrayList<PumpkinInfo> getMiniPumpkins();

	/**
	 * キャラクタが所有するボーナス図形（ミニパンプキンおよびキングパンプキン）のパンプキンマスの座標のリストを返します。
	 * 
	 * @return キャラクタが所有するボーナス図形のパンプキンマスの座標のリスト
	 */
	ArrayList<Point2> getPumpkinCenterLocations();

	/**
	 * キャラクタが所有するミニパンプキンのパンプキンマスの座標のリストを返します。
	 * 
	 * @return キャラクタが所有するミニパンプキンのパンプキンマスの座標のリスト
	 */
	ArrayList<Point2> getMiniPumpkinCenterLocations();

	/**
	 * キャラクタが所有するキングパンプキンのパンプキンマスの座標のリストを返します。
	 * 
	 * @return キャラクタが所有するキングパンプキンのパンプキンマスの座標のリスト
	 */
	ArrayList<Point2> getKingPumpkinCenterLocations();

}
